package com.imachen.ymcc.enums;

import lombok.Getter;

@Getter
public enum GlobalExceptionCode {

    OK("成功！", "0"),
    ERROR("失败！", "-1"),

    // 100XX开头的是公共的
    PARAM_IS_NULL_ERROR("参数不能为空！", "10001"),
    OPERATING_FREQUENTLY_ERROR("请勿频繁操作","10002"),
    SERVICE_ERROR("服务异常，已熔断降级","10003"),
    // 200XX开头的就是system服务

    // 300XX开头的就是user服务
    USER_EXISTED_ERROR("用户已注册！", "30001"),
    USER_CODE_IS_NULL_ERROR("没有使用注册邀请码","30002"),
    USER_CODE_USED_ERROR("一个推荐码只能用作一次注册","30003"),
    USER_IS_NULL_ERROR("用户不存在！","30004"),


    // 400XX开头的就是uaa服务
    USER_SAVE_ERROR("用户保存失败！", "40001"),
    USER_NO_PERMISSION_ERROR("权限认证失败！！！","40002"),

    // 500XX开头的就是common服务
    PHONE_IS_NULL_ERROR("手机号不能为空！","50001"),
    IMAGECODE_IS_NULL_ERROR("图形验证码不能为空！","50002"),
    IMAGECODE_EXPIRED_ERROR("图形验证码过期","50003"),
    IMAGECODE_ERROR("图形验证码错误！","50004"),
    IMAGECODEKEY_ERROR("请刷新页面重新获取图片验证码！","50005"),
    CODE_IS_NULL_ERROR("验证码为空！", "50006"),
    CODE_ERROR("验证码错误！", "50007"),
    BLACK_ERROR("该手机号已添加黑名单，请勿重复添加","50008"),
    SMS_BLACK_ERROR("您已经被禁⽤发送短信验证码，请联系管理员！","50009"),


    // 600XX开头的就是course服务
    COURSE_EXISTS_ERROR("该课程已经存在！","60001"),
    COURSE_IS_NULL_ERROR("该课程不存在！","60002"),
    COURSE_ON_LINE_ERROR("该课程已上架！","60003"),
    COURSE_OFF_LINE_ERROR("该课程已下架！","60004"),
    COURSE_RELEASE_ERROR("课程上架失败！","60005"),
    COURSE_LOWER_ERROR("课程下架失败！","60006"),
    COURSE_TYPE_IS_NULL_ERROR("课程类型不存在！","60007"),
    COURSE_PATH_NULL_ERROR("课程类型为空！","60008"),
    COURSE_MEDIA_IS_NULL_ERROR("课程视频不存在！","60009"),
    COURSE_PERMISSION_ERROR("请够买视频后观看！","60010"),
    COURSE_EXPIRED_ERROR("视频已过期,请续费后观看！","60011"),

    // 700XX开头的就是order服务
    ORDER_TOKEN_IS_NULL_ERROR("防重token为空！","70001"),
    ORDER_TOKEN_ERROR("防重token不一致！","70002"),
    COURSE_ORDER_EXISTED_ERROR("订单已存在！！！","70003"),
    ORDER_SEND_FAIL_ERROR("订单发送失败,请联系管理员！","70004"),

    // 800XX开头的就是pay服务
    PAY_ORDER_IS_NULL_ERROR("支付订单为空！！！","80001"),
    PAY_ORDER_STATUS_ERROR("支付订单状态异常！！！","80002"),

    // 900XX开头的就是kill服务
    KILL_ACTIVITY_IS_NULL_ERROR("秒杀活动为空！","90001"),
    KILL_ACTIVITY_SUCCESS_PUBLISH_ERROR("秒杀活动已发布！","90002"),
    KILL_ACTIVITY_WAIT_PUBLISH_ERROR("秒杀活动未发布！","90003"),
    KILL_COURSE_NOT_NULL_ERROR("该课程已加入秒杀中！","90004"),
    KILL_COURSE_IS_NULL_ERROR("课程为空！","90005"),
    KILL_START_ERROR("秒杀已开始！！","90006"),
    KILL_STOP_ERROR("秒杀未开始或已结束","90007"),
    KILL_USER_ALREADY_ORDER_ERROR("该课程已秒杀过,请勿重复秒杀","90008"),
    KILL_FAIL_STOCK_IS_NULL_ERROR("库存不足,秒杀失败","90009"),
    KILL_BEFORE_ORDER_IS_NULL_ERROR("秒杀预创订单不存在","90010"),

    ;


    private String message;

    private String code;


    GlobalExceptionCode(String message, String code) {
        this.message = message;
        this.code = code;
    }
}
